The objective of this project was to learn more about the field of firmware engineering while understanding more about the potential of Arduino. This prototype is a budgeted portable human interface device with a familiar appearance
                            to an arcade-style gamepad. The focus was to have it capable of being used as a serial bus device among various operating systems and applications such as a gaming controller and automated machinery.
This project was made for our capstone project at Clark college. While this capstone was not needed as I've already a capstone in the previous year due to my complicated schedule, I've taken it upon myself to pick up a new project
                            as an interest and hobby. This project was done with my brother Tam Nguyen, who is a computer science major, and he was responsible for the development of the java program that helped this restricted microcontroller work with
                            a window's operating system.
Originally, we were aware of the limitation of the Arduino nano, and being that is the only microcontroller we have at hand, we had to make a workaround to help us perform the operation we had
                            intended it to. In the end, the process to use this controller is more complicated than the ones available on the market, and as that maybe, this was worked surprisingly well.
Process
Using an Arduino as the microprocessor for the project, I developed a code that processed the user’s input from the 3d printed joysticks and buttons as feedback to the computer. An application developed by Tam uses the serial port
                            that the gamepad is connected to and converts the feedback into emulated keystroke for Windows or Linux operating systems.
 
                            As a challenge to ourselves, my team and I set a small budget for ourselves in creating this project. In doing so, we had significant limitations on the components used. However, this allowed us to develop hands-on prototyping
                            skills by solving problems through analysis and developing work arounds to our resource limitation. Specifically, we programmed an application that could emulate the functions that the microcontroller controller wasn’t capable
                            of handling.
